IF EXISTS(SELECT * FROM sysobjects WHERE name = 'buscarGeomecanica' AND type = 'P')
BEGIN
	DROP PROCEDURE buscarGeomecanica
END
GO
CREATE PROCEDURE buscarGeomecanica
(
@CodigoSondaje INT
)
AS
/*********************************************************************
	Resumen: Devuelve lista de Geomecanica
	Parametros:
		@CodigoSondaje : Codigo de Sondaje
**********************************************************************/	
SET NOCOUNT on
BEGIN
	
	DECLARE @Geomecanica TABLE
	(
	CodigoGeomecanica VARCHAR(3),
	Desde FLOAT,
	Hasta FLOAT,
	Fecha	DATETIME,
	ValorRMR FLOAT,
	Descripcion VARCHAR(500),
	Incostencia INT DEFAULT(0)
	);
	
	INSERT INTO @Geomecanica(CodigoGeomecanica, Desde, Hasta, Fecha, ValorRMR, Descripcion)	
	SELECT t1.CodigoGeomecanica, t1.Desde, t1.Hasta, t1.Fecha AS Fecha, t1.ValorRMR, t1.Observacion AS Descripcion
	FROM Geomecanica t1
	WHERE t1.CodigoSondaje = @CodigoSondaje
	
	DECLARE @CodigoAnterior	VARCHAR(3)
	DECLARE @CodigoGeomecanica VARCHAR(3)
	DECLARE @Espacio FLOAT
	DECLARE @EspacioAnterior FLOAT
	
	SELECT TOP 1 @CodigoAnterior = CodigoGeomecanica, @EspacioAnterior = isnull(Desde, 0) 
	FROM Geomecanica WHERE CodigoSondaje = 4 ORDER BY CodigoGeomecanica ASC
	
	-- Valida Interseccion de segmetos
	DECLARE curLitologia CURSOR FOR
	SELECT Desde, Hasta, CodigoGeomecanica, isnull(Desde, 0) AS Espacio FROM Geomecanica WHERE CodigoSondaje = @CodigoSondaje
	UNION 
	SELECT Desde, Hasta, CodigoGeomecanica, isnull(Hasta, 0) AS Espacio FROM Geomecanica WHERE CodigoSondaje = @CodigoSondaje
	ORDER BY 1, 2

	DECLARE @Desde FLOAT
	DECLARE @Hasta FLOAT
		
	OPEN curLitologia
	FETCH NEXT FROM curLitologia INTO @Desde, @Hasta, @CodigoGeomecanica, @Espacio								
	WHILE (@@FETCH_STATUS=0)
	BEGIN
		   	
		IF (@CodigoAnterior <> @CodigoGeomecanica)
			BEGIN
				IF (@Espacio - @EspacioAnterior) <> 0
					BEGIN
						-- Se marca como inconstencia a ambos registros
			   			UPDATE @Geomecanica SET Incostencia = 1 WHERE CodigoGeomecanica = @CodigoAnterior
			   			UPDATE @Geomecanica SET Incostencia = 1 WHERE CodigoGeomecanica = @CodigoGeomecanica
					END							
			END 
		
		SET @CodigoAnterior = @CodigoGeomecanica 
		SET @EspacioAnterior = @Espacio
		FETCH NEXT FROM curLitologia INTO @Desde, @Hasta, @CodigoGeomecanica, @Espacio
	END
	CLOSE curLitologia
	DEALLOCATE curLitologia
	
	SELECT * FROM @Geomecanica ORDER BY Desde ASC, Hasta ASC
	
END -- buscarGeomecanica 4

